﻿
Imports std

Public Class vector_int64_property
    Inherits wrappered_property(Of vector(Of Int64))

    Private Shared ReadOnly default_type As String = GetType(vector_int64_property).Name()

    Protected Sub New(ByVal id As Int64,
                      ByVal name As String,
                      ByVal type As String)
        MyBase.New(id, name, type, AddressOf bytes_vector_int64)
    End Sub

    Public Shared Shadows Function ctor(ByVal id As Int64,
                                        ByVal name As String) As iproperty
        Return New vector_int64_property(id, name, default_type)
    End Function
End Class

Public Class cached_vector_int64_property
    Inherits wrappered_property(Of vector(Of Int64))

    Private Shared ReadOnly default_type As String = GetType(cached_vector_int64_property).Name()

    Protected Sub New(ByVal id As Int64,
                      ByVal name As String,
                      ByVal type As String)
        MyBase.New(id, name, type, AddressOf bytes_vector_int64, AddressOf cached(Of vector(Of Int64)))
    End Sub

    Public Shared Shadows Function ctor(ByVal id As Int64,
                                        ByVal name As String) As iproperty
        Return New cached_vector_int64_property(id, name, default_type)
    End Function
End Class
